<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Building the Tcl API</title>
    <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Berkeley DB Installation and Build Guide" />
    <link rel="up" href="build_win.html" title="Chapter 5.  Building Berkeley DB for Windows" />
    <link rel="prev" href="build_win_sql.html" title="Building the SQL API" />
    <link rel="next" href="win_build_dist_dll.html" title="Distributing DLLs" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 12.1.6.2</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Building the Tcl API</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="build_win_sql.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 5.  Building Berkeley DB for Windows </th>
          <td width="20%" align="right"> <a accesskey="n" href="win_build_dist_dll.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="build_win_tcl"></a>Building the Tcl API</h2>
          </div>
        </div>
      </div>
      <p>
            Tcl support is not built automatically. See <a href="../programmer_reference/tcl.html#tcl_intro" class="olink">Loading Berkeley DB with Tcl</a>
            for information on sites from which you can download Tcl
            and which Tcl versions are compatible with Berkeley DB.
            These notes assume that Tcl is installed as
            <code class="filename">d:\tcl</code>, but you can change that
            if you want.
        </p>
      <p>
            The Tcl library must be built as the same build type as
            the Berkeley DB library (both Release or both Debug). We
            found that the binary release of Tcl can be used with the
            Release configuration of Berkeley DB, but you will need to
            build Tcl from sources for the Debug configuration. Before
            building Tcl, you will need to modify its makefile to make
            sure that you are building a debug version, including
            thread support. This is because the set of DLLs linked
            into the Tcl executable must match the corresponding set
            of DLLs used by Berkeley DB.
        </p>
      <div class="orderedlist">
        <ol type="1">
          <li>
                Set the include directories.
                <div class="itemizedlist"><ul type="disc"><li>
                        In Visual Studio
                        2008 - Choose <span class="emphasis"><em>Tools -&gt; Options
                        -&gt; Projects -&gt; VC++
                        Directories</em></span>. Under the "Show
                        directories for" pull-down, select "Include
                        files". Add the full pathname for
                        <code class="filename">d:\tcl\include</code>, then
                        click OK. 
                    </li><li>
                        In Visual Studio 2010/Visual Studio 2012 - Right-click
                        db_tcl project, choose
                        <span class="emphasis"><em>Properties-&gt;Configuration
                        Properties-&gt; VC++
                        Directories-&gt;Include
                        Directories</em></span>. Add the full
                        pathnames for
                       <code class="filename">d:\tcl\include</code>, then
                        click OK. 
                    </li></ul></div>
                This is the directory that contains
                    <code class="filename">tcl.h</code>.
            </li>
          <li>
                Set the library files directory. 
                <div class="itemizedlist"><ul type="disc"><li>
                        In Visual Studio
                        2008 - Choose <span class="emphasis"><em>Tools -&gt; Options
                        -&gt; Projects -&gt; VC++
                        Directories</em></span>. Under the "Show
                        directories for" pull-down, select "Library
                        files". Add the full pathname for the
                       <code class="filename">d:\tcl\lib</code> directory,
                        then click OK. 
                    </li><li>
                        In Visual Studio 2010/Visual Studio 2012 -
			Right-click db_tcl project, choose
                        <span class="emphasis"><em>Properties-&gt;Configuration
                        Properties-&gt; VC++
                        Directories-&gt;Library
                        Directories</em></span>. Add the full
                        pathname for the
                        <code class="filename">d:\tcl\lib</code> directory,
                        then click OK. 
                    </li></ul></div>
                This is the directory needed to find
                    <code class="filename">tcl86.lib</code> (or whatever the
                library is named in your distribution).
            </li>
          <li>
                Set the build type to Release or Debug in the
                drop-down on the tool bar.
            </li>
          <li>
            <p> 
                    To build, right-click on db_tcl and select
                    Build. This builds the Tcl support library for
                    Berkeley DB, placing the result into one of the
                    following Berkeley DB subdirectories, depending
                    upon the configuration that you chose:
                </p>
            <table class="simplelist" border="0" summary="Simple list">
              <tr>
                <td>
                  <code class="filename">build_windows\Win32\Debug\libdb_tcl62d.dll</code>
                </td>
              </tr>
              <tr>
                <td>
                  <code class="filename">build_windows\Win32\Release\libdb_tcl62.dll</code>
                </td>
              </tr>
            </table>
          </li>
        </ol>
      </div>
      <p>
            If you use a version different from Tcl 8.6.x you will
            need to change the name of the Tcl library used in the
            build (for example, <code class="filename">tcl86.lib</code>) to the
            appropriate name. To do this, right click on
            <span class="emphasis"><em>db_tcl</em></span>, go to
            <span class="emphasis"><em>Properties -&gt; Linker -&gt; Input -&gt;
            Additional dependencies</em></span> and change
            <code class="filename">tcl85.lib</code> to match the Tcl
            version you are using.
        </p>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="build_win_sql.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="build_win.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="win_build_dist_dll.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Building the SQL API </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Distributing DLLs</td>
        </tr>
      </table>
    </div>
  </body>
</html>
